שפת אילוצי העצמים Object Constraints Language (OCL)

Size: px
Start display at page:

Download "שפת אילוצי העצמים Object Constraints Language (OCL)"

Transcription

1 שפת אילוצי העצמים Object Constraints Language (OCL) 1

2 Outline What is OCL Types of constraints Constraints structure OCL expressions Examples Textbook: Jos Warmer and Anneke Kleppe, The Object Constraint Language Available on Google Books 2

3 What is OCL It is intended for the specification of additional requirements (constrains) which cannot or be expressed graphically. To specify invariants on classes and types in the class model. To describe pre- and post- conditions on operations. To describe guards. To specify target (sets) for messages and actions. To specify constraints on operations. To specify derivation rules for attributes for any expression over a UML model. 3

4 Types of Constraints An invariant is a constraint that states a condition that must always be met by all instances of the class, type, or interface. An invariant is described using an expression that evaluates to true if the invariant is met. Invariants must be true all the time (Class diagram). A precondition to an operation is a restriction that must be true at the moment that the operation is going to be executed. The obligations are specified by post conditions (Sequential diagram). A postcondition to an operation is a restriction that must be true at the moment that the operation has just ended its execution (Sequential diagram). A guard is a constraint that must be true before a state transition fires (State machine diagram). 4

5 Constraints Structure context Typename c_type [name]: <OCL expression> The context is keyword introduces the context for the expression. Each OCL expression is written in the context of an instance of a specific type. Typename is the name of the type or the class for which the invariant constrain applies. c_type is the type of the constrain: invariant, pre/post-condition, guard. [name] optional, the names of the constraint. OCL - expression should accept value true for all instances of Typename. For example: Context Packagename1::class1 inv : Context class2 inv : 5

6 Basic Data Types Operations above basic types of data (Boolean, Integer, Real, String); Type Boolean Integer Real String Operations and, or, xor, not, if-then-else, multiply, add, subtract, divide, compare multiply, add, subtract, divide, compare toupper, tolower, concat, 6

7 Collections set : the mathematical set. It is not ordered and does not contain duplicate elements. bag : A container. It is not ordered and contain duplicate elements. sequence : An container. It is ordered and contain duplicate elements. collection asset() : can be used to convert any collection into a set (remove duplicates). 7

8 implies operator, operator Implies: A=T, B=T A=T, B=F A=F, B=T A=F, B=F A implies B T F T T Operations on collections. Do not mix with implies as in logical notation! 8

9 Collection Operations <collection> isempty( ) notempty ( ) exists ( e:t <b.e.>) isunique(e:t <v.e>) Boolean: forall ( e:t * <b.e.>) forall(e:t 1,f;T 2 <b.e.>) excludes ( object ) includes ( object ) includesall ( collection ) count ( object ) Numeral: size ( ) sum ( ) select ( e:t <b.e.>) asset() Collections: reject ( e:t <b.e.>) including(object), excluding(object) collect ( e:t <v.e.>) includingall(collection), excludingall(collection) Generic: iterate ( e:t1; r:t2 = <v.e.> <v.e.>) b.e. stands for: boolean expression v.e. stands for: value expression (as seen in the Structural Modeling, Part B lecture (slides 59-60)). 9

10 Collection Operations - Select select ( e:t <b.e.>): SQL-like select, returning a sub-collection of the original. animals select(a:animal a.family == Reptile ) reject ( e:t <b.e.>) is select s complementary operation. From a collection of animals to a <= collection of animals! e stands for iterator expression, T stands for type. b.e. stands for: boolean expression v.e. stands for: value expression 10

11 Collection Operations - Collect collect ( e:t <v.e.>): from every member of the collection, take something. Thus this operation might return a collection of different type than the original! animals collect(a:animal a.name) From a collection of animals to a collection of strings! Alice Bob Carol Dave Eve Mallory Peggy Victor Trent Trudy Walter Paul Shorthand Notation: students.studentcard only in collect!!! 11

12 OCL expression Operations above objects: <class>.<attribute> <class>.<role>.<attribute> (preferred) <class>.<class name>.<attribute> Operations above collections: <collection> <operation> דוגמאות: 1. context Employee inv: self.age>17 and self.age<= context Employee inv: self.age>30 or self.workplace.number<5 2. context Department inv: self.number<5 or self.employee select(age<=30) size()=0 3. context Department inv: self.employee exist(job= manager ) and self.company.year<=self.year 4. context Company inv: self.department.employee forall(age<=67) גיל העובדים חייב להיות בין 18 ל- 100 גיל מינימלי של העובדים במחלקות 5 ומעלה חייב להיות לפחות 31. לכל מחלקה חייב להיות "מנהל" ושנת הקמת המחלקה לא מוקדם משנת הקמת החברה פנסיונרים לא מועסקים בחברה

13 Example 1: treating collections as instances, enumerations If a person has a wife, she must be female and the person must be male. context Person inv: Wife notempty() implies (wife.gender=gender::female and self.gender=gender::male) //note: after a collection has been validated to be of size 1, it can be treated as an instance! If a person has a husband, he must be male and the person must be female. context Person inv: Husband notempty() implies (husband.gender=gender::male and self.gender=gender::female) 13

14 Example 1 (Cont). If a person is male he can't have pink car context Person inv: (self.gender==gender::male) implies (self.owns select(c c.color== pink ) size()=0) If a person is unemployed he can't own cars in value of more then 500,000$ context Person inv: (self.unemployed) implies (self.owns collect(c c.value) sum()<= ) A person can t have cars in more then 3 different colors context Person inv: self.owns collect(c c.color) asset() size()<=3 )אם האדם מובטל אז( )יוצר אוסף של ערכי הרכבים שברשותו( )חשב סכום ערכי הרכבים תבדוק שהוא קטן מ ( )יוצר אוסף של צבעי הרכבים שברשותו( )הפוך את האוסף ל - set השאר אחד מכל צבע( )ספירת כמות צבעים ובדיקה שאין יותר מ 3 צבעים( 14

15 Example 1 (Cont.) A person between the age of 0 to 18 can t own a yellow car while person between the age of 18 and 21 can own one yellow car at most and a person older then 21 can own as many yellow cars as he like. context Person inv: let amountofyellowcars : Integer = self.owns select(c:car c.color = yellow ) size() in if (self.age < 18) then(amountofyellowcars = 0) else if (self.age < 21) then (amountofyellowcars <= 1) else true endif endif 15

16 Example 2 The sum of the values of all securities must be at least 20% more than the amount of the credit. context Credit inv sufficientsecurities: securities.value sum()> self.amount * 1.2 A credit of a given customer can only be secured by securities that are (הלוואה של לקוח נתון מאובטחת רק ע " י ערבויות ששייכות לאותו הלקוח ( customer. owned by the given context Credit inv onlyownedsecurities: securities.owner forall(aa:customer aa = self.customer) aa is instance of owner!!!! 16

17 Instance and Type Operations Instances have the following operations: self.oclistypeof(t) returns true iff self is of type T self.ocliskindof(t) returns true iff (self is of type T) V (self s subtype of T) Self.oclAsType(T) used for casting (for instance, from Abstract class to Subclass). Types have the allinstances member: T.allInstances returns a collection of all T instances. Example: At least 1 animal has to eat meat : Animals.allInstances exists(a:animal a.eats == Meat ) In reality, this is usually frowned upon (we ll see it later!) 17

18 Example 3: allinstances, type checks, recursion All people should be married context Person inv: Person.allInstances forall(p:person p.married) In a Class all the Attributes have different names. context Class inv: self.features select(f f.oclistypeof(attribute)) isunique(a:attribute a.name) (collection of Attributes) (collection of Features) 18

19 Association Class * Navigate to an association class: If the context is Teacher, you could navigate to the association class with the expression: self.room. This expression would result in a collection of all the room assignments for all the courses to which the teacher is assigned. Navigate from an association class to either end of the association: Starting with a context of the Room class, the expressions: self.instructor self.course is valid. Navigating from an association class always results in a single object. 19

20 Example 4 - Train All trains must own at least one wagon context Train inv atleastonewagon: self.wagon size() >= 1 A wagon and its successor wagon should belong to the same train context Wagon inv belongtothesametrain: self.succ notempty() implies self.succ.train = self.train All the trains will have the same number of wagons context Train inv samenumberofwagons: Train.allInstances forall(x:train,y:train x.wagon size() = y.wagon size() ) 20

21 Example 4 - Train There do not exists two different wagons directly linked to each other in a cyclic way not necessary : consider two wagon instances w1,w2. If these two instances are linked with an Order link, one has to assume the role of succ and the second must assume the role of pred two can t close a cycle! But how do you prevent a cycle of > 2 wagons? Context Train inv NoCycles: Wagon collect(w w.succ) size() = Wagon.size()-1 Will this work? 21

22 Advanced Topics in OCL Types and Subtypes via oclistypeof and ocliskindof 22

23 Advanced Topics in OCL 23

24 Advanced Topics in OCL 24

25 Advanced Topics in OCL Preconditions, Postconditions, Operations (sic, p.155) Navigation into class method using :: post : result = participants This is how we define the result! Keywords: <attribute>@pre, pre, post, result. 25

26 Advanced Topics in OCL Avoid allinstances (Warmer and Kleppe, p.67) A Person has no more than 2 parents: context Person Inv: parents size() <= 2 context Person Inv: Person.allInstances forall(p:person p.parents size()<= 2) The use of allinstances is discouraged, because it makes the invariant more complex [even to the point of hiding it.]... In most systems... It is difficult to find all instances of a class. Unless an explicit tracking device keeps a record of all instances of a certain class as they are created and deleted, there is no way to find them. Thus, there is no way to implement the invariant using a programming language equivalent to the allinstances operation. 26

27 Advanced Topics in OCL And this is just the beginning... Handling message-passing between objects Tuples and Tuple Types Unvefined Values: the OclVoid type Retyping or Casting Unfortunately, these along with many other OCL features are out of the scope of our course. 27

Object Constraint https://www.lri.fr/~linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/45 Plan 1 2 3 4 2/45 Motivation Why OCL Cannot represent all the relevant aspects of a specification

More information

Rubby Casallas Grupo de Construcción de Software Uniandes

Rubby Casallas Grupo de Construcción de Software Uniandes UML OCL 2.0 Rubby Casallas Grupo de Construcción de Software Uniandes Why OCL? A UML diagram, such as a class diagram, is typically not refined enough to provide all the relevant aspects of a specification.

More information

What is OCL? OCL/Context

What is OCL? OCL/Context What is? Software Engineering Lecture 5: Prof. Dr. Peter Thiemann Universität Freiburg SS 20 = object constraint language standard query language of UML 2 specify expressions and constraints in object-oriented

More information

OCL and Concept Model

OCL and Concept Model OCL and Concept Model Jörg Kienzle & Alfred Strohmeier COMP-533 OCL and Concept Model OCL History and Goal Constraints OCL Types Base Types & Operations Collection Types & Operations Navigating UML Diagrams

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Software Engineering

Software Engineering Software Engineering Lecture 15: OCL Peter Thiemann University of Freiburg, Germany 01.07.2013 Peter Thiemann (Univ. Freiburg) Software Engineering 01.07.2013 1 / 28 What is OCL? OCL = Object Constraint

More information

UNIT-II Introduction to UML

UNIT-II Introduction to UML UNIT-II Introduction to UML - P. P. Mahale UML OVERVIEW OF UML :- We need a Modeling Language! We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development

More information

Architectural Models and Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A)

Architectural Models and Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A) Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo

More information

Specification with OCL

Specification with OCL Specification with OCL Jurriaan Hage Slides adapted from Birgit Demuth, TU Dresden e-mail: jur@cs.uu.nl homepage: http://www.cs.uu.nl/people/jur/ Department of Information and Computing Sciences, Universiteit

More information

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008 SEFM School 2008 Specification-based Testing of Embedded Systems Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer FIRST, Berlin Lecture 5: OCL, ParTeG Course Outline L1: Introduction

More information

Formal Methods for Software Engineers

Formal Methods for Software Engineers Formal Methods for Software Engineers Professor Ray Welland Department of Computing Science University of Glasgow ray@dcs.gla.ac.uk INF3120-FM 1 Overview Motivation Why have formal specifications? Where

More information

From OCL to Typed First-order Logic

From OCL to Typed First-order Logic 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 From OCL to Typed First-order Logic Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally developed by Reiner

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008 SEFM School 2008 Specification-based Testing of Embedded Systems Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer FIRST, Berlin Lecture 4: Mutations, OCL etc. Course Outline L1:

More information

OCL Object Constraint Language

OCL Object Constraint Language PA103 - Object-oriented Methods for Design of Information Systems OCL Object Constraint Language Radek Ošlejšek Fakulta informatiky MU oslejsek@fi.muni.cz Literature The Object Constraint Language (Second

More information

CIS 771: Software Specifications. Lecture 14: Advanced OCL Expressions

CIS 771: Software Specifications. Lecture 14: Advanced OCL Expressions CIS 771: Software Specifications Lecture 14: Advanced OCL Expressions Copyright 2001-2002, Matt Dwyer, John Hatcliff, and Rod Howell. The syllabus and all lectures for this course are copyrighted materials

More information

CIS 771: Software Specifications

CIS 771: Software Specifications CIS 771: Software Specifications Lecture 11: Introduction to OCL & USE Copyright 2001-2002, Matt Dwyer, John Hatcliff, and Rod Howell. The syllabus and all lectures for this course are copyrighted materials

More information

Object Constraint Language Specification 7

Object Constraint Language Specification 7 Object Constraint Language Specification 7 This chapter introduces and defines the Object Constraint Language (OCL), a formal language used to express constraints. Users of the Unified Modeling Language

More information

The Object Constraint Language (OCL)

The Object Constraint Language (OCL) The Object Constraint Language (OCL) Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Semantics and UML models UML models often treated as informal descriptions

More information

Hans Karlsen. MDriven The book. Doing effective Business by taking control of Information. Hans Karlsen, Stockholm, Sweden

Hans Karlsen. MDriven The book. Doing effective Business by taking control of Information. Hans Karlsen, Stockholm, Sweden Hans Karlsen MDriven The book Doing effective Business by taking control of Information Hans Karlsen, Stockholm, Sweden 2016-01-23 Part 8 Object Constraint Language 1 What is Object Constraint Language

More information

7 OCL Language Description

7 OCL Language Description 7 OCL Language Description This chapter introduces the Object Constraint Language (OCL), a formal language used to describe expressions on UML models. These expressions typically specify invariant conditions

More information

Formal Methods in Software Engineering 1

Formal Methods in Software Engineering 1 Building Models with OCL Introduction Completing UML Diagrams Modeling Tips and Hints Summary Formal Methods in Software Engineering 1 What Is a Model? Simply put, a model is a high level system description.

More information

Composite Structures

Composite Structures Composite Structures Marie-Agnès Peraldi-Frati UNSA/I3S/INRIA map@unice.fr UML 2 Composition Model Purpose: improve the black diamond composition Supports connections between parts at the same level of

More information

Agenda. More on the Unified Modeling Language. UML diagram types. Packages

Agenda. More on the Unified Modeling Language. UML diagram types. Packages Agenda More on the Unified Modeling Language Perdita Stevens, University of Edinburgh July 2010 And the rest... deployment diagrams, component diagrams, object diagrams, timing diagrams, etc. OCL and alternatives

More information

Object Constraint Language Specification

Object Constraint Language Specification Object Constraint Language Specification version 1.1 1 September 1997 Rational Software Microsoft Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-logix IBM

More information

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language]

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language] Lecture day 2016-04-07 SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language] - System design in an object-oriented way employing USE

More information

CIS 771: Software Specifications. Lecture 4: More Alloy Basics

CIS 771: Software Specifications. Lecture 4: More Alloy Basics CIS 771: Software Specifications Lecture 4: More Alloy Basics Copyright 2001-2002, Matt Dwyer, John Hatcliff, and Rod Howell. The syllabus and all lectures for this course are copyrighted materials and

More information

Appendix A OCL 2.0 Grammar

Appendix A OCL 2.0 Grammar Appendix A OCL 2.0 Grammar In this appendix we summarise the concrete syntax of OCL [113] using an extended Backus-Naur format [8]. The grammar in [113] is different from the grammar presented here. It

More information

Formal Methods in Software Engineering 1

Formal Methods in Software Engineering 1 Today s Agenda Quiz 1 on next Tue. Quick Review Finish Program Proof Introduction to OCL Formal Methods in Software Engineering 1 Quick Review What is the difference between first-order logic and propositional

More information

CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL

CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL Ali Hamie. University of Brighton, Brighton, UK a.a.hamie@brighton.ac.uk ABSTRACT Constraint patterns are very useful for specifying OCL constraints on UML

More information

Lecture 9. UML language architecture

Lecture 9. UML language architecture Lecture 9 UML Model architecture Object Constraint Language 12/10/98 AOO / UML / OCL/Strategies 1 UML language architecture UML metamodel defines meaning of UML models Defined in a metacircular manner,

More information

- מבחן. - 4 עבודות ב- JAVA. הגשה בזוגות דרך ה- System Submission

- מבחן. - 4 עבודות ב- JAVA. הגשה בזוגות דרך ה- System Submission 1 - מבחן. - 4 עבודות ב- JAVA 60% 40% הגשה בזוגות דרך ה- System Submission 2 UML Class Diagrams Packages Class Path JAR Files חלק ראשון: חלק שני: 3 An abstraction of software features A structure that singles

More information

The Object Contraint Language by Example

The Object Contraint Language by Example Formal Specification of Software The Object Contraint Language by Example Bernhard Beckert UNIVERSITÄT KOBLENZ-LANDAU B. Beckert: Formal Specification of Software p.1 The Classifier Context inv ( c :)?

More information

Consistency, Independence and Consequences in UML and OCL Models Martin Gogolla, Mirco Kuhlmann, Lars Hamann

Consistency, Independence and Consequences in UML and OCL Models Martin Gogolla, Mirco Kuhlmann, Lars Hamann Consistency, Independence and Consequences in UML and OCL Models Martin Gogolla, Mirco Kuhlmann, Lars Hamann University of Bremen Computer Science Department Database Systems Group D-28334 Bremen, Germany

More information

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL Ali Hamie, John Howse School of Computing, Mathematical and Information Sciences, University of Brighton, Brighton, UK. {a.a.hamie@brighton.ac.uk,

More information

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Profiles 166 Usage scenarios Metamodel customization for adapting terminology to a specific platform or domain adding (visual) notation adding and specializing semantics adding

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2013-10-28 03 2013-10-28 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 8 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Components: Synchronized communication Sequence Diagrams Use Case Realization

More information

Chapter 8, Object Design: Object Constraint Language

Chapter 8, Object Design: Object Constraint Language Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 8, Object Design: Object Constraint Language Outline of the Lecture OCL Simple predicates Preconditions Postconditions Contracts

More information

Design and Implementation of a UML/OCL Compiler

Design and Implementation of a UML/OCL Compiler Design and Implementation of a UML/OCL Compiler Faridah Liduan Master Thesis INF/SCR-04/31 June 2004 Institute of Information and Computing Sciences Utrecht University Abstract The Dutch Tax and Customs

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2013-10-28 03 2013-10-28 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

CS 161 Computer Security

CS 161 Computer Security Wagner Spring 2014 CS 161 Computer Security 1/27 Reasoning About Code Often functions make certain assumptions about their arguments, and it is the caller s responsibility to make sure those assumptions

More information

OCL parsing / type checking in the context of GF and KeY. Kristofer Johannisson

OCL parsing / type checking in the context of GF and KeY. Kristofer Johannisson OCL parsing / type checking in the context of GF and KeY Kristofer Johannisson 1 I. Introduction 2 Typechecking? context OwnerPIN inv: maxpinsize > 0 and maxtries > 0 and triesremaining >= 0 and triesremaining

More information

From UML/OCL to SBVR Specifications: a Challenging Transformation

From UML/OCL to SBVR Specifications: a Challenging Transformation From UML/OCL to SBVR Specifications: a Challenging Transformation Jordi Cabot a, Raquel Pau b and Ruth Raventós c,* a Estudis d'informàtica, Multimedia i Telecomunicació, Universitat Oberta de Catalunya

More information

Extending OCL to Include Actions

Extending OCL to Include Actions Extending OCL to Include Actions Anneke Kleppe 1, Jos Warmer 2 Klasse Objecten, The Netherlands, www.klasse.nl 1 A.Kleppe@klasse.nl 2 J.Warmer@klasse.nl Abstract. The UML s Object Constraint Language provides

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2012-10-30 03 2012-10-30 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

Object Constraint Language 2

Object Constraint Language 2 Object Constraint Language 2 Martin Nečaský Dept. of Software Engineering Faculty of Mathematics and Physics Charles University in Prague Type System predefined types in OCL standard library generic types

More information

Lecture 16+17: Modeling with UML

Lecture 16+17: Modeling with UML Chair of Software Engineering Software Engineering Spring Semester 2008 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 16+17: Modeling with UML What is modeling? Building an abstraction

More information

Lecture 15: Modeling with UML

Lecture 15: Modeling with UML Chair of Software Engineering What is modeling? Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 15: Modeling with

More information

Assertions! How to write correct programs and know it! Harlan Mills! Gunnar Gotshalks! 08-1

Assertions! How to write correct programs and know it! Harlan Mills! Gunnar Gotshalks! 08-1 Assertions How to write correct programs and know it Harlan Mills Gunnar Gotshalks 08-1 Assertions Boolean expressions or predicates that evaluate to true or false in every state In a program they express

More information

Today s Topics. What is a set?

Today s Topics. What is a set? Today s Topics Introduction to set theory What is a set? Set notation Basic set operations What is a set? Definition: A set is an unordered collection of objects Examples: Sets can contain items of mixed

More information

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture

More information

course: Database Systems (NDBI025) SS2017/18

course: Database Systems (NDBI025) SS2017/18 course: Database Systems (NDBI025) SS2017/18 doc. RNDr. Tomáš Skopal, Ph.D. Mgr. Martin Nečaský, Ph.D. RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics,

More information

Object Oriented Program Correctness with OOSimL

Object Oriented Program Correctness with OOSimL Kennesaw State University DigitalCommons@Kennesaw State University Faculty Publications 12-2009 Object Oriented Program Correctness with OOSimL José M. Garrido Kennesaw State University, jgarrido@kennesaw.edu

More information

Generating Alternative Representations for OCL Integrity Constraints

Generating Alternative Representations for OCL Integrity Constraints Generating Alternative Representations for OCL Integrity Constraints Jordi Cabot 1,2 and Ernest Teniente 2 1 Estudis d'informàtica i Multimèdia, Universitat Oberta de Catalunya jcabot@uoc.edu 2 Dept. Llenguatges

More information

2004 John Mylopoulos. The Entity-Relationship Model John Mylopoulos. The Entity-Relationship Model John Mylopoulos

2004 John Mylopoulos. The Entity-Relationship Model John Mylopoulos. The Entity-Relationship Model John Mylopoulos XVI. The Entity-Relationship Model The Entity Relationship Model The Entity-Relationship Model Entities, Relationships and Attributes Cardinalities, Identifiers and Generalization Documentation of E-R

More information

Advances in Programming Languages

Advances in Programming Languages T O Y H Advances in Programming Languages APL4: JML The Java Modeling Language David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Thursday 21 January 2010

More information

Lecture 6: Arithmetic and Threshold Circuits

Lecture 6: Arithmetic and Threshold Circuits IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Advanced Course on Computational Complexity Lecture 6: Arithmetic and Threshold Circuits David Mix Barrington and Alexis Maciel July

More information

CH3. Class Modeling Tae-Hoon Song. Michael Blaha, James Rumbaugh Object-Oriented Modeling and Design with UML SE LAB KAIST

CH3. Class Modeling Tae-Hoon Song. Michael Blaha, James Rumbaugh Object-Oriented Modeling and Design with UML SE LAB KAIST SE LAB KAIST CH3. Class Modeling Michael Blaha, James Rumbaugh Object-Oriented Modeling and Design with UML 2006-04-12 Tae-Hoon Song Software Engineering Lab 1 Contents Introduction Background Object and

More information

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 I. Logic 101 In logic, a statement or proposition is a sentence that can either be true or false. A predicate is a sentence in

More information

ER Modeling ER Diagram ID-Dependent and Weak Entities Pg 1

ER Modeling ER Diagram ID-Dependent and Weak Entities Pg 1 ER Modeling ER Diagram ID-Dependent and Weak Entities Pg 1 ER Diagram ID-Dependent and Weak Entities Ray Lockwood Points: An ID-dependent entity is an entity whose identifier (key) includes the identifier

More information

Goals of the Lecture Constraints

Goals of the Lecture Constraints Goals of the Lecture Constraints Object-Oriented nalysis and Design - Fall 1998 n Describe Constraints Ð How are they used in design? Ð How are they specified in UML? Ð Provide examples of their use Why

More information

Arguing for program correctness and writing correct programs

Arguing for program correctness and writing correct programs Arguing for program correctness and writing correct programs Saying things about states, programs Program state s1: x=4, y=-1.5, A={ me, you, he Assertions about program states x=3 False in s1 (y=x) x>=0

More information

Chapter 2. Database Design. Database Systems p. 25/540

Chapter 2. Database Design. Database Systems p. 25/540 Chapter 2 Database Design Database Systems p. 25/540 Database Design Phases requirements analysis specification conceptual design conceptual schema logical design logical schema physical design physical

More information

CSCI0170. Today s topics. Predicates Natural Number recursion Recursion Diagrams List recursion A first glance at the design recipe

CSCI0170. Today s topics. Predicates Natural Number recursion Recursion Diagrams List recursion A first glance at the design recipe CSCI0170 Predicates Natural Number recursion Recursion Diagrams List recursion A first glance at the design recipe Today s topics Lecture recorded; see course website. Predicates: things that test stuff

More information

Summer 2017 Discussion 10: July 25, Introduction. 2 Primitives and Define

Summer 2017 Discussion 10: July 25, Introduction. 2 Primitives and Define CS 6A Scheme Summer 207 Discussion 0: July 25, 207 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

Lists of Lists. CS 5010 Program Design Paradigms Bootcamp Lesson 5.3

Lists of Lists. CS 5010 Program Design Paradigms Bootcamp Lesson 5.3 Lists of Lists CS 5010 Program Design Paradigms Bootcamp Lesson 5.3 Mitchell Wand, 2012-2017 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. 1 Learning

More information

Component-Based Software Engineering

Component-Based Software Engineering Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 14 The Object Constraint Language (Part C) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo

More information

Lecture 7 - Applied Cryptography

Lecture 7 - Applied Cryptography CSE497b Introduction to Computer and Network Security - Spring 2007 - Professor Jaeger Lecture 7 - Applied Cryptography CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger

More information

Modelling with OCL. Context of OCL Expressions. The Object Constraint Language (OCL) Component-Based Software Engineering. ECE493-Topic 4 Winter 2006

Modelling with OCL. Context of OCL Expressions. The Object Constraint Language (OCL) Component-Based Software Engineering. ECE493-Topic 4 Winter 2006 Component-Based Software Engineering ECE493-Topic 4 Winter 2006 Lecture 10 The Object Constraint Language (Part B) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo

More information

Further GroupBy & Extend Operations

Further GroupBy & Extend Operations Slide 1 Further GroupBy & Extend Operations Objectives of the Lecture : To consider whole relation Grouping; To consider the SQL Grouping option Having; To consider the Extend operator & its implementation

More information

Lecture 7. Log into Linux New documents posted to course webpage

Lecture 7. Log into Linux New documents posted to course webpage Lecture 7 Log into Linux New documents posted to course webpage Coding style guideline; part of project grade is following this Homework 4, due on Monday; this is a written assignment Project 1, due next

More information

Lecture Notes: Hoare Logic

Lecture Notes: Hoare Logic Lecture Notes: Hoare Logic 17-654/17-754: Analysis of Software Artifacts Jonathan Aldrich (jonathan.aldrich@cs.cmu.edu) Lecture 3 1 Hoare Logic The goal of Hoare logic is to provide a formal system for

More information

Chapter 9, Object Design: Specifying Interfaces

Chapter 9, Object Design: Specifying Interfaces Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 9, Object Design: Specifying Interfaces Lecture Plan Specifying Interfaces (Chapter 9) Object Design Activities Visibilities and

More information

JML OCL. Java. iterate

JML OCL. Java. iterate 1 OCL JML OCL (Object Constraint Language) JML (Java Modelling Language) UML/OCL JML Java OCL JML iterate iterate Java OCL JML The paper presents a translation method from OCL (Object Constraint Language)

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 07: A Type System for Visibility 2013-11-18 07 2013-11-18 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

5C. Examples of OCL in use, especially in "Object Design: Specifying Interfaces"

5C. Examples of OCL in use, especially in Object Design: Specifying Interfaces 5C. Examples of OCL in use, especially in "Object Design: Specifying Interfaces" Note: This section is based heavily on Chapter 9 of the very useful text book Object- Oriented Software Engineering by Bruegge

More information

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation

More information

Ready for the Real World. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 8 09/18/2007

Ready for the Real World. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 8 09/18/2007 Ready for the Real World Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 8 09/18/2007 Lecture Goals Review material from Chapter 4 of the OO A&D textbook Taking Your Software

More information

Entity Relationship Modelling

Entity Relationship Modelling Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes, and relationships in a system The degree of

More information

Relational Algebra for sets Introduction to relational algebra for bags

Relational Algebra for sets Introduction to relational algebra for bags Relational Algebra for sets Introduction to relational algebra for bags Thursday, September 27, 2012 1 1 Terminology for Relational Databases Slide repeated from Lecture 1... Account Number Owner Balance

More information

EXAMINATIONS 2009 END-OF-YEAR. COMP 202 / SWEN 202 Formal Methods of Computer Science / Formal Foundations of Software Engineering

EXAMINATIONS 2009 END-OF-YEAR. COMP 202 / SWEN 202 Formal Methods of Computer Science / Formal Foundations of Software Engineering T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON EXAMINATIONS 2009 END-OF-YEAR COMP 202 / SWEN 202 Formal Methods of Computer Science / Formal

More information

Formal Methods. CITS5501 Software Testing and Quality Assurance

Formal Methods. CITS5501 Software Testing and Quality Assurance Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981

More information

Graph Database, think different!

Graph Database, think different! Graph Database, think different! Written by Roni Licher Winter 2014-2015 236363 - Database Systems - Technion Nodes Edges (directed or not) Properties Neo4j and Cypher 4j Graph database (Like SQL server

More information

11-1. Collections. CSE 143 Java. Java 2 Collection Interfaces. Goals for Next Several Lectures

11-1. Collections. CSE 143 Java. Java 2 Collection Interfaces. Goals for Next Several Lectures Collections CSE 143 Java Collections Most programs need to store and access collections of data Collections are worth studying because... They are widely useful in programming They provide examples of

More information

Exercise 3: Objects, Design by Contract. Master Solution

Exercise 3: Objects, Design by Contract. Master Solution Exercise 3: Objects, Design by Contract Hand-out: 23 April 2004 Due: 30 April 2004 Master Solution 1. Summary: Objects, Design by Contract 1.1 Feature categories No result Command Procedure No result Routine

More information

Software Design, Modelling and Analysis in UML

Software Design, Modelling and Analysis in UML Software Design, Modelling and Analysis in UML Lecture 03: Object Constraint Language (OCL) 2011-11-02 03 2011-11-02 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg,

More information

OCL for the Specification of Model Transformation Contracts

OCL for the Specification of Model Transformation Contracts OCL for the Specification of Model Transformation Contracts Eric Cariou, Raphaël Marvie, Lionel Seinturier, and Laurence Duchien LIFL - Université des Sciences et Technologies de Lille UMR CNRS 8022 -

More information

III. Check if the divisors add up to the number. Now we may consider each of these tasks separately, assuming the others will be taken care of

III. Check if the divisors add up to the number. Now we may consider each of these tasks separately, assuming the others will be taken care of Top-Down Design 1 Top-Down Design: A solution method where the problem is broken down into smaller sub-problems, which in turn are broken down into smaller subproblems, continuing until each sub-problem

More information

OCL 2.0 Specification Version 2.0

OCL 2.0 Specification Version 2.0 Date: June 2005 OCL 2.0 Specification Version 2.0 ptc/2005-06-06 UML OCL2 Specification Copyright 200-2003 Adaptive Ltd. Copyright 200-2003 Boldsoft Copyright 200-2003 France Telecom Copyright 200-2003

More information

Metamodeling with Metamodels. Using. UML/MOF including OCL

Metamodeling with Metamodels. Using. UML/MOF including OCL Metamodeling with Metamodels Using UML/MOF including OCL Introducing Metamodels (Wikipedia) A metamodel is a model of a model An instantiation of metamodel gives a model Metamodeling is the process of

More information

Discrete Mathematics Lecture 4. Harper Langston New York University

Discrete Mathematics Lecture 4. Harper Langston New York University Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a

More information

Employing UML and OCL for Designing and Analyzing Role-Based Access Control

Employing UML and OCL for Designing and Analyzing Role-Based Access Control Under consideration for publication in Math. Struct. in Comp. Science Employing UML and OCL for Designing and Analyzing Role-Based Access Control M I R C O K U H L M A N N 1, K A R S T E N S O H R 2 and

More information

Iterative Statements. Iterative Statements: Examples. Counter-Controlled Loops. ICOM 4036 Programming Languages Statement-Level Control Structure

Iterative Statements. Iterative Statements: Examples. Counter-Controlled Loops. ICOM 4036 Programming Languages Statement-Level Control Structure ICOM 4036 Programming Languages Statement-Level Control Structure Selection Statement Iterative Statements Unconditional Branching Guarded Commands This lecture covers review questions 8-16 This lecture

More information

7. Implementation Phase. 7.1 Architecture Diagrams 7.2 OO Languages: Java 7.3 Constraint Languages: OCL

7. Implementation Phase. 7.1 Architecture Diagrams 7.2 OO Languages: Java 7.3 Constraint Languages: OCL 7. Implementation Phase 7.1 Architecture Diagrams 7.2 OO Languages: Java 7.3 Constraint Languages: OCL Architecture Design Models An architecture model (structure model) is a model of a data processing

More information

Chapter 11 Object and Object- Relational Databases

Chapter 11 Object and Object- Relational Databases Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational

More information

Values, Variables, Types & Arithmetic Expressions. Agenda

Values, Variables, Types & Arithmetic Expressions. Agenda Values, Variables, Types & Arithmetic Expressions Lecture 2 Object-Oriented Programming Agenda Inside of a Computer Value Variable Data Types in Java Literals Identifiers Type conversions Manipulating

More information

Flow Control: Branches and loops

Flow Control: Branches and loops Flow Control: Branches and loops In this context flow control refers to controlling the flow of the execution of your program that is, which instructions will get carried out and in what order. In the

More information

Enforcing Modeling Guidelines in an ORDBMS-based UML-Repository

Enforcing Modeling Guidelines in an ORDBMS-based UML-Repository Enforcing Modeling Guidelines in an ORDBMS-based UML-Repository Abstract N.Ritter, H.-P. Steiert University of Kaiserslautern, Dept. of Computer Science P. O. Box 3049, D-67663 Kaiserslautern, Germany

More information

Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman. Chapter 28 Formal Methods

Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman. Chapter 28 Formal Methods Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman Chapter 28 Formal Methods 1 Problems with Conventional Specification contradictions ambiguities vagueness incompleteness mixed levels

More information